#ifndef _VN_SFML_INPUT_MANAGER_H_
#define _VN_SFML_INPUT_MANAGER_H_

#include "InputManager.h"
//#include "SFML\System.hpp"
#include "SFML\Graphics.hpp"

class SFMLInputManager : public InputManager
{
public:
	SFMLInputManager(void);
	virtual ~SFMLInputManager(void);

	virtual void capture();

	virtual const bool isKeyDown(const std::string&) const;
	virtual const bool isKeyPressed(const std::string&) const;
	virtual const bool isKeyReleased(const std::string&) const;

	virtual const bool isMouseButtonDown(const std::string&) const;
	virtual const bool isMouseButtonPressed(const std::string&) const;
	virtual const bool isMouseButtonReleased(const std::string&) const;

	virtual void addKeyFunction(const std::string&, void*);
	virtual void addMouseFunction(const std::string&, void*);

protected:
	std::map<std::string, sf::Keyboard::Key> m_keyFunctions;
	std::map<std::string, sf::Mouse::Button> m_mouseFunctions;
};

#endif // _VN_SFML_INPUT_MANAGER_H_